Data Authenticator for the Deployable Seismic Verification System

[123]

### APPENDIX R

### Message Formats and Protocol

[124]

                                                          12/17/89 whp

                  AUTHENTICATOR MESSAGE FORMATS AND PROTOCOL

      Frame Start is activated through -INTO.  This causes the current
      key to be loaded into the V and F registers and R cleared.  Frame
      Start in progress is indicated by a Oscillator Busy status.

      Data sent to the authenticator activates -INT1.  Data should only
      be sent to the authenticator when the -INT1 bit in the status
      byte is clear.  The Data Ready status bit indicates that valid
      data is available.  Data Ready is cleared when the byte is read.

      A clear Software Busy bit of the status byte, bit 4, indicates
      that the authenticator is ready to receive a message.  The
      authenticator reads the Data in byte at offset 5 and discards it
      prior to clearing the Software Busy bit.

      SEND and RECEIVE Message Format

      Bytes         Name               Comment

      1             LENGTH             Character count of all
                                       characters in message.

      1             OPCODE             Message type

      0-251         DATA               Optional data bytes

      2             CRC                Crc checksum

      All authenticator checksum computations use the IBM SDLC checking
      polynomial x16+x12+x5+1.

    [125]

                  AUTHENTICATOR KEY STORAGE DATA STRUCTURES

      Offset         Name           Comments

      0              Status         bit
                     Active 0's     0 key initialized
                                    1    key in use
                                    2    key deactivated
                                    3    not used
                                    4    not used
                                    5    not used
                                    6    not used
                                    7    key checksum failed

      1              V1             High byte V register
      2              V0             Low byte V register
      3              F7             Highest byte F register
      4              F6
      5              F5
      6              F4
      7              F3
      8              F2
      9              F1
      10             F0             Lowest byte F register. Bit 0 is
                                    unused and set to 0. Bit 0 is the
                                    lowest bit.

      11             CRC1           High byte of CRC of V and F keys
      12             CRC0           Low byte of CRC
      13             DI6            Year key initialized
      14             DI5            Month key initialized
      15             DI4            Day key initialized
      16             DI3            Day of week key initialized
      17             DI2            Seconds key initialized
      18             DI1            Minute key initialized
      19             DI0            Hour key initialized
      20             DS6            Year key activated
      21             DS5            Month key activated
      22             DS4            Day key activated
      23             DS3            Day of week key activated
      24             DS2            Seconds key activated
      25             DS1            Minute key activated
      26             DS0            Hour key activated
      27             DE6            Year key deactivated
      28             DE5            Month key deactivated
      29             DE4            Day key deactivated
      30             DE3            Day of week key deactivated
      31             DE2            Seconds key deactivated
      32             DE1            Minute key deactivated
      33             DE0            Hour key deactivated
      34             FC3            Highest byte software frame counter
      35             FC2
      36             FC1
      37             FC0            Lowest byte software frame counter

    [126]

                           AUTHENTICATOR MESSAGES

      Acknowledge/Negative Acknowledge reaponse  RECEIVE

      The message is sent as a response to a short, long, or incorrect
      checksum message.  It may be used with zero status as an positive
      acknowledgment.

           Offset         Name                     Comments
           0              5                        Length
           1              0                        Opcode
           2              status                   0=okay
                                                   1=bad checksum
                                                   2=short message
                                                   4=long message
                                                   8=unknown opcode
           3              crc high
           4              crc low

    [127]

      Send Frame Count  SEND

           Offset         Name                     Comments
           0              4                        Length
           1              1                        Opcode
           2              crc high
           3              crc low

      Response

           Offset         Name                     Comments
           0              8                        Length
           1              1                        Opcode
           2              FC3                      high byte
           3              FC2
           4              FCl
           5              FC0                      low byte
           6              crc high
           7              crc low

    [128]

      Set time  SEND

           Offset         Name                     Comments
           0              11                       Length
           1              2                        Opcode
           2              hours                    Mask with hex 80 for
                                                   PM.
           3              minutes
           4              seconds
           5              day of week
           6              month
           7              day
           8              year
           9              crc high
           10             crc low

           Time formats in RCA 7170 clock/calendar formats

           Response

           Message number 0 with zero status.

    [129]

      Send Time SEND

           Offset          Name                      Comments
           0               4                         Length
           1               3                         Opcode
           2               crc high
           3               crc low

           Response

           Offset          Name                      Comments
           0               11                        Length
           1               3                         Opcode
           2               hours                     Mask with hex 80 for
                                                     PM.
           3               minutes
           4               seconds
           5               day of week
           6               month
           7               day
           8               year
           9               crc high
           10              crc low

           Time formats in RCA 7170 clock/calendar formats

    [130]

      Send Authenticator program identification  SEND

           Offset         Name                     Comments
           0              4                        Length
           l              4                        Opcode
           2              crc high
           3              crc low

           Response

           Offset         Name                     Comments
           0              12                       Length
           1              4                        Opcode
           2              NO                       Name in ASCII
           3              N1
           4              N2
           5              N3
           6              N4
           7              N5
           8              N6
           9              N7
           10             crc high
           11             crc low

    [131]

      Send EEPROM tracking data  SEND

           Offset         Name                     Comments
           0              4                        Length
           l              5                        Opcode
           2              crc high
           3              crc low

           Response

           Offset         Name                     Comments
           0              68                       Length
           1              5                        Opcode
           2              ET0                      byte 0
           3              ET1                      byte 1
           .              .
           .              .
           .              .
           65             ET63                     byte 63
           66             crc high
           67             crc low

    [132]

      Send program checksum  SEND

           Offset         Name                     Comments
           0              4                        Length
           1              6                        Opcode
           2              crc high
           3              crc low

           Response

           Offset         Name                     Comments
           0              6                        Length
           1              6                        Opcode
           2              PCRC1                    High byte program
                                                   checksum
           3              PCRC0                    Low byte program
                                                   checksum
           4              crc high
           5              crc low

    [133]

      Send installed key #

           Offset         Name                     Comments
           0              4                        Length
           1              7                        Opcode
           3              crc high
           4              crc low

           Response

           Offset         Name                     Comments
           0              7                        Length
           1              7                        Opcode
           2              KS                       Key Status
                                                   0=key installed
                                                   1=no key installed
                                                   2=user key installed

           3              KEY1                     High byte key number
           4              KEY0                     Low byte key number
           5              crc high
           6              crc low

    [134]

      Install key  SEND

           Offset         Name                     Comments
           0              6                        Length
           1              8                        Opcode
           2              KEY1                     High byte key number
           3              KEY0                     Low byte key number
           4              crc high
           5              crc low

           Response

           Offset         Name                     Comments
           0              5                        Length
           1              8                        Opcode
           2              KEYSTAT                  0=installed
                                                   1=key not
                                                     initialized
                                                   2=key deactivated
                                                   4=key checksum fail
                                                   8=key already
                                                     installed

           3              crc high
           4              crc low

    [135]

      Bulk erase EEPROM  SEND

           Offset         Name                     Comments
           0              4                        Length
           1              9                        Opcode
           3              crc high
           4              crc low

           Response

           Offset         Name                     Comments
           0              5                        Length
           1              9                        Opcode
           2              status                   0=erase to all hex
                                                     FF's
                                                   1=did not erase

           3              crc high
           4              crc low

    [136]

      Erase Authenticator write buffer  SEND

           Offset         Name                      Comments
           0              5                         Length
           1              l0                        Opcode
           2              crc high
           3              crc low

           Response

           Message number 0 with 0 status.

    [137]

      Send key data   SEND

           Offset         Name                     Comments
           0              6                        Length
           1              11                       Opcode
           2              KEY1                     High byte key number
           3              KEY0                     Low byte key number
           4              crc high
           5              crc low

    [138]

      Send key data

           Response

      The V and F register data is zero if the key status is "key
      initialized" or "key in use".

           Offset         Name                     Comments
           0              44                       Length
           1              11                       Opcode
           2              KEY1                     High byte key number
           3              KEY0                     Low byte key number

           4              Status         bit
                          Active 0's     0    key initialized
                                         1    key in use
                                         2    key deactivated
                                         3    not used
                                         4    not used
                                         5    not used
                                         6    not used
                                         7    key checksum failed

           5              Vl             High byte V register
           6              V0             Low byte V register
           7              F7             Highest byte F register
           8              F6
           9              F5
           10             F4
           11             F3
           12             F2
           13             Fl
           14             F0             Lowest byte F register. Bit 0 is
                                         unused and set to 0. Bit 0 is the
                                         lowest bit.

           15             CRC1           High byte of CRC of V and F keys
           16             CRC0           Low byte of CRC
           17             DI6            Year key initialized
           18             DI5            Month key initialized
           19             DI4            Day key initialized
           20             DI3            Day of week key initialized
           21             DI2            Seconds key initialized
           22             DI1            Minute key initialized
           23             DI0            Hour key initialized
           24             DS6            Year key activated
           25             DS5            Month key activated
           26             DS4            Day key activated
           27             DS3            Day of week key activated
           28             DS2            Seconds key activated
           29             DS1            Minute key activated
           30             DS0            Hour key activated

    [139]

      Send key data

           31             DE6            Year key deactivated
           32             DE5            Month key deactivated
           33             DE4            Day key deactivated
           34             DE3            Day of week key deactivated
           35             DE2            Seconds key deactivated
           36             DE1            Minute key deactivated
           37             DE0            Hour key deactivated
           38             FCO            Highest byte software frame
           39             FC1            counter
           40             FC2
           41             FC3            Lowest byte software frame
                                         counter
           42             crc high
           43             crc low

    [140]

      Unsolicited Message Start SEND

      The authenticator prompts for permission to send a message by
      setting the Poll Authenticator bit, bit 3, in the status byte.
      The authenticator wishes to transmit an unsolicited messaqe.

      The authenticator does not send the message until the Unsolicited
      Message Start is sent to it.  Make sure the Data Out Ready bit is
      the status register is clear before sending this message.  This
      bit is cleared by reading the Data Out register at offset 5

           Offset         Name                     Comments
           0              4                        Length
           1              12                       opcode
           3              FE hex                   crc high
           4              B7 hex                   crc low

      If the message explains an Authenticator fatal message, then the
      D register offline bit is set and hardware authentication
      stopped.

    [141]

      Install key  SEND

      Install the key in the EEPROM or RAM.  The key number must be in
      the range 0 to maximum number of keys held in the key EEPROM.  Or
      it must be in the range -1 to the minus the maximum number of
      user keys held in RAM.

           Offset         Name                    Comments
           0              18            Length
           1              13            Opcode
           2              KEY1          High byte key number
           3              KEY0          Low byte key number
           4              V1            High byte V register
           5              V0            Low byte V register
           6              F7            Highest byte F register
           7              F6
           8              F5
           9              F4
           10             F3
           11             F2
           12             F1
           13             F0            Lowest byte F register. Bit 0 is
                                        unused and set to 0. Bit 0 is the
                                        lowest bit.

           14             CRC1          High byte of CRC of V and F keys
           15             CRC0          Low byte of CRC
                                        counter
           16             crc high
           17             crc low

    [142]

      Install key

           Response

           Offset         Name                       Comments
           0              5                          Length
           1              13                         Opcode
           2              status                     O=okay
                                                     1=bad checksum
                                                     2=short message
                                                     4=long message
                                                     8=key # < 0
                                                    10=key # > maximum
                                                       allowed
                                                    20= EEPROM write error

           3              crc high
           4              crc low

    [143]

               AUTHENTICATOR INTERNAL MEMORY SPACE ALLOCATION

      Hex Address                           Contents

      30                                    8051 hardware stack. At software
                                            initialization location 81, SP,
                                            contains 2F. The hardware stack
                                            expands upward.

      Hex Address                           Contents

      2F                                    X7L
      2E                                    X7H
      2D                                    X6L
      2C                                    X6H
      2B                                    X5L
      2A                                    X5H
      29                                    X4L
      28                                    X4H
      27                                    X3L
      26                                    X3H
      25                                    X2L
      24                                    X2H
      23                                    X1L
      22                                    X1H
      21                                    X0L
      20                                    X0H

      X0, X1, X2, and X3 are for operating system temporary storage.
      X4 through X7 are user definable.

    [144]

               AUTHENTICATOR INTERNAL MEMORY SPACE ALLOCATION

      1F                            R7        Frame counter low byte
      1E                            R6        Frame counter
      1D                            R5        Frame counter
      1C                            R4        Frame counter high byte
      1B                            R3        Key # low byte
      1A                            R2        Key # high byte
      19                            R1        V1 high byte
      16             Bank 3         R0        V0 low byte
      17                            R7        F7 high byte
      16                            R6        F6
      15                            R5        F5
      14                            R4        F4
      13                            R3        F3
      12                            R2        F2
      11                            R1        F1
      10             Bank 2         R0        F0 low byte
      0F                            R7        Used for M*, U/, (FIND)
      0E                            R6        Used for M*, U/, (FIND)
      0D                            R5        Used for M*, U/, (FIND)
      0C                            R4        Used for M*, U/, (FIND)
      0B                            R3        Used for M*, U/, (FIND)
      0A                            R2        Used for M*, U/, (FIND)
      09                            R1        Used for M*, U/, (FIND)
      08             Bank 1         R0        Used for M*, U/, (FIND)
      07                            R7        FORTH RP
      06                            R6        FORTH RP
      05                            R5        FORTH SP
      04                            R4        FORTH SP
      03                            R3        FORTH IP
      02                            R2        FORTH IP
      01                            R1        FORTH W
      00             Bank 0         R0        FORTH W also temporary
                                              assembler stack pointer

      Key # of the current key, V and F, installed in internal RAM
      locations 10-19.  Key # 0 indicates no key installed.